<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <script src="./lib/vue.js"></script>
    <!-- 1.安装vue-router路由模块 -->
    <script src="./lib/vue-router.js"></script>
    <style>
            /* 通过linkActiveClass修改类名称，改成自己想要的名称为其添加样式 */
            .myactive{
                color: red;
                font-weight: 800;
                font-style: italic;
                font-size: 40px;
                text-decoration: underline;
                background-color: pink;
            }
        
        </style>
</head>
<body>
    <div id="app">
        <!-- <a href="#/login">登录</a>
        <a href="#/register">注册</a> -->
        <!-- router-link默认渲染为一个a标签  tag属性可以改为想渲染的标签-->
        <router-link to="/login" tag="span">登录</router-link>
        <router-link to="/register">注册</router-link>

        <!-- 这是vue-router提供的元素，专门用来当作占位符的，将来，路由规则匹配到的组件
        就会展示到这个router-view中去  所以我们可以认为router-view是一个占位符-->
        <router-view></router-view>
    </div>
    <script>
        // 组件的模板对象
        var login = {
            template: '<h1>这是登录组件</h1>'
        }
        var register = {
            template: '<h1>这是注册组件</h1>'
        }
        // 2.创建一个路由对象，当导入vue-router包后，在window全局对象中，就有了一个路由的构造函数
        // 叫VueRouter

        // 在new 路由对象的时候，可以为构造函数，传递一个配置对象
        var routerObj = new VueRouter({
            //route //这个配置对象中的route表示 路由匹配规则 的意思
            routes: [ //路由匹配规则
            // 每个路由规则，都是一个对象，这个规则对象，身上，有两个必须的属性：
            // 属性1：是path,表示监听哪个路由链接地址；
            // 属性2：是component，表示，如果 路由是前面匹配到的path，则展示component属性对应的那个组件
                
                { path: '/', redirect: '/login'},//这里的重定向与node中的redirect完全是两码事
                { path: '/login', component: login},//component的属性值必须是一个模板对象，不能是组件的引用名称
                { path: '/register', component: register}
            ],
            linkActiveClass: 'myactive'
        });
        var vm = new Vue({
            el: "#app",
            data: {},
            methods: {},
            router: routerObj //将路由规则对象注册到vm实例上，用来监听URL地址的变化，然后展示对应的组件
            // components: {
            //     login
            // }
        });
    </script>
</body>
</html>